Unless otherwise indicated herein, the approaches described in this section are not admitted to be prior art by inclusion in this section.
Virtualization allows the abstraction and pooling of hardware resources to support virtual machines in a virtualized computing environment, such as a Software-Defined Datacenter (SDDC). For example, through server virtualization, virtual machines running different operating systems may be supported by the same physical machine (e.g., referred to as a “host”). Each virtual machine is generally provisioned with virtual resources to run an operating system (OS) and applications, such as central processing unit (CPU) resources, memory resources, storage resources, network resources, etc. Virtualization software (e.g., hypervisor) running on the physical machine is used to maintain a mapping between the virtual resources allocated to each virtual machine and the underlying physical resources of the host.
In a virtualized computing environment, container technologies may be used to run containers in a particular virtual machine. Unlike virtual machines, containers are “OS-less,” which means that they do not include any OS that could consume, for example, tens of Gigabytes (GB). This makes containers more lightweight, portable, efficient and suitable for delivery into an isolated OS environment. Running containers inside a virtual machine (known as “containers-on-virtual-machine”) not only leverages the benefits of container technologies, but also that of virtualization technologies. However, when the virtual machine crashes, the containers will also crash. This adversely affects the performance of the containers.